package com.ph.shopping.facade.permission.service;

import com.ph.shopping.common.core.exception.BizException;
import com.ph.shopping.common.util.page.PageBean;
import com.ph.shopping.common.util.result.Result;
import com.ph.shopping.facade.permission.dto.UpdatePassDto;
import com.ph.shopping.facade.permission.dto.UpdateUserRoleDto;
import com.ph.shopping.facade.permission.dto.UserDto;
import com.ph.shopping.facade.permission.dto.UserRoleDto;
import com.ph.shopping.facade.permission.entity.User;

/**
 * @项目：phshopping-facade-permission
 * @描述： 用户登录接口
 * @作者： Mr.zheng
 * @创建时间：2017-03-14
 * @Copyright @2017 by Mr.zheng
 */
public interface IUserService {
    /**
     * 新增登录用户
     * @param dto
     * @return Result
     */
    public Result addUser(UserRoleDto dto) throws BizException;

    /**
     * 修改密码
     * @param user
     * @return Result
     */
    public Result updatePassword(User user) throws BizException;

    /**
     * 修改密码(后台首页)
     * @param updatePassDto
     * @return Result
     */
    public Result updatePass(UpdatePassDto updatePassDto);

    /**
     * 修改用户信息
     * @param user
     * @return Result
     */
    public Result updateUser(User user)throws BizException;

    /**
     * 冻结或者启用用户
     * @param user
     * @return
     */
    public Result frozenOrEnableUser(User user)throws BizException;

    /**
     * 刪除登录用户
     * @param user
     * @return Result
     */
    public Result deleteUser(User user) throws BizException;

    /**
     * 查询用户信息
     * @param user
     * @return Result
     */
    public Result queryUser(User user);

    /**
     * 查询用户列表
     * @param userDto
     * @return Result
     */
    public Result getUserList(PageBean page,UserDto userDto);

    /**
     * 通过用户查询用户所拥有的角色id
     * @param userId
     * @return
     */
    public Result queryUserRoleByUserID(Long userId);

    /**
     * 修改用户对应的角色
     * @param updateUserRoleDto
     * @return
     */
    public Result updateUserRole(UpdateUserRoleDto updateUserRoleDto)throws BizException;
    
    /**
     * 重置用户密码
     * @param user
     * @return
     */
    public Result resetPassword(User user)throws BizException;
    
    
    
}
